home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-02
/
equipchk.zip
/
EQUIPCHK.PAS
< prev
Wrap
Pascal/Delphi Source File
|
1990-07-31
|
3KB
|
91 lines
Program EquipmentCheck;
{
______________________________________________________________________________
Checking for various peripheral devices attatched to the PC.
______________________________________________________________________________
}
type
RegSet = record
Case integer of
1: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags : integer);
2: (AL,AH, BL,BH, CL,CH, DL,DH : byte);
end;
var
Devices, Memory,
Printers, DiskDrives,
RS232, GameIO, M8087 : integer;
Monitor : string[20];
Function AvailMem : integer;
{returns available memory in Kbytes}
var
Regs : RegSet;
begin
Intr($12, Regs); {calling interupt service 12H}
AvailMem := Regs.AX; {equipment status returned in AX}
end;
Function EquipStat : integer;
{returns the equipment status byte}
var
Regs : RegSet;
begin
Intr($11, Regs); {calling interupt service 11H}
EquipStat := Regs.AX; {returning equipment status in AX}
end;
Function DispType : integer;
{returns type of display monitor attatched}
var
Regs : RegSet;
begin
Regs.Ah := $0f;
Intr($10, Regs); {calling interupt service 10H}
DispType := Regs.AL; {display type in the AL register}
end;
Procedure GetEquipStat;
{evaluates the equipment status bytes for specific attatchments}
begin
Memory := AvailMem;
Devices := EquipStat;
Printers := (Devices AND $C000) SHR 14;
DiskDrives := ((Devices AND $00C0) SHR 6) + 1;
RS232 := (Devices AND $0E00) SHR 9;
GameIO := (Devices AND $0002) SHR 1;
Case DispType of
2 : Monitor := 'Composite Color';
3 : Monitor := 'RGB Color';
7 : Monitor := 'Monochrome';
end;
end;
Procedure DispEquipStat;
{Displays result of Equipment checks}
begin
WriteLn('Equipment Check reveals the following devices:');
WriteLn;
WriteLn('System Memory: ',Memory,'k');
WriteLn('5 1/4" Disk Drives: ',DiskDrives);
WriteLn('Parallel Printer Adapters: ',printers);
WriteLn('RS-232 Serial Adapters: ',RS232);
WriteLn(Monitor,'Display Monitor');
If GameIO = 1 then
WriteLn('Game Adapter Port: ',GameIO)
else
WriteLn('No Game Adapter Port');
If M8087 = 1 then
WriteLn('8087 Math CoProcessor')
else
WriteLn('No Math Coprocessor');
end;
{ ** main program begins here **}
begin
GetEquipStat;
DispEquipStat;
end.